load("@bazel_tools//tools/build_rules:test_rules.bzl", "rule_test")
load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")

package(default_visibility = ["//visibility:public"])

rust_library(
    name = "hello_lib",
    srcs = [
        "src/greeter.rs",
        "src/lib.rs",
    ],
    data = ["greeting.txt"],
    edition = "2018",
    deps = ["//tools/runfiles"],
)

rust_binary(
    name = "hello_world",
    srcs = ["src/main.rs"],
    edition = "2018",
    deps = [":hello_lib"],
)

rust_test(
    name = "hello_lib_test",
    crate = ":hello_lib",
)

rule_test(
    name = "hello_lib_rule_test",
    generates = ["libhello_lib-683707109.rlib"],
    rule = ":hello_lib",
)

rule_test(
    name = "hello_world_rule_test",
    generates = select({
        "//rust/platform:windows": ["hello_world.exe"],
        "//conditions:default": ["hello_world"],
    }),
    rule = "//test/rust:hello_world",
)
